The present invention relates to wireless networks, and in particular to a method and apparatus to determine times for transmission of frames by a wireless device capable of supporting a plurality of MAC addresses such that the wireless device can function as a plurality of access points in a wireless network.
Wireless networks, in particular wireless local area networks (WLANs) such as those conforming to the IEEE 802.11 standard are becoming widely used. In a wireless network that acts in infrastructure mode, one wireless device acts as an access point (AP)—also called a base station—to a set of client stations, and all communication to and from a client station via the access point to which the client is associated.
Multiple BSSID Wireless Devices as Virtual Access Points
A new feature being developed for wireless devices is the ability for a single wireless device to act as multiple “virtual” access points, each for a different infrastructure wireless network. Thus, a single wireless device can act as an access point, also called a base station for a plurality of infrastructure networks. Each infrastructure network is identified by a network identifier. In the language of the IEEE 802.11 standard, each infrastructure network is called a basic service set (BSS), and the network identifier is a basic service set identifier (BSSID). For an AP, the BSSID is the MAC address of the AP. Thus, a single wireless device can have a plurality of MAC addresses.
An AP indicates its availability by broadcasting beacon frames. For a wireless device to act as more than a single AP, that is, to act as a multiple BSSID AP (MBSSID-AP) device, the wireless device needs to be able to broadcast multiple beacons spread across a beacon period, each beacon indicating that the broadcasting device has a different BSSID.
To a client station, an MBSSID-AP appears to be several distinct co-located APs.
Power Save Mode in WLANS
It is known for a wireless client of an infrastructure WLAN to work in power save mode, wherein the AP of the client notes which client is in “sleep” (“power save”) mode, and buffers packets for clients in sleep mode. An indication by an AP to one or more particular clients that data is buffered for the client(s), called a traffic indication map element (TIM) in the case of the IEEE 802.11 standard, is used to make it possible for the AP to announce which client stations have data buffered. The TIM is sent with every beacon from the AP. Client stations that are in power save mode periodically wake up and listen for beacons. Thus, an AP broadcasts frames containing indications to particular client(s) that data is buffered for the client(s) in the AP.
A client receiving a TIM interprets the TIM to determine if unicast and multicast traffic is buffered on the AP for the client. A client station, once it determines that unicast data is buffered at the AP, transmits a short poll frame (a PS-Poll) to the AP, and the AP of the client station responds with the corresponding buffered unicast data, or acknowledges receipt of the poll and sends the buffered unicast data at a later time.
If the TIM indicating that data is buffered is sent during a contention-free period (CFP), a contention-free pollable client station operating in sleep mode does not send the short PS-Poll frame, but rather remains active until the buffered data is received, or until the CFP ends.
In addition to unicast traffic for a client station, there may be broadcast or multicast traffic buffered for client stations. On the AP side, if any client station is in sleep mode, the AP buffers all broadcast and multicast traffic. Once in a while, the AP broadcasts a frame—a beacon frame—that includes an indication that broadcast or multicast traffic is buffered in the AP. We call such an indication a broadcast-buffered indication. In the case of the IEEE 802.11 standard, the indication is called a delivery traffic indication map element (DTIM). Thus, an AP once in a while transmits a beacon containing a DTIM. The AP then delivers any multicast or broadcast traffic that is buffered to all clients immediately following transmission of the DTIM-containing beacon.
Recall a TIM identifies the client stations for which traffic is pending and buffered in the AP, and this is coded in a partial virtual bitmap. In addition, the TIM contains an indication of whether multicast/broadcast traffic is buffered. While an AP sends a TIM with every beacon, a DTIM rather than an ordinary TIM is transmitted within a beacon every period called a DTIM period. After transmitting a DTIM, an AP sends out any buffered broadcast or multicast traffic using normal frame transmission rules.
Thus, unicast traffic is obtained by the client via a PS-Poll, and multicast traffic destined to the clients in the BSSID is transmitted at the DTIM beacon boundary.
In an 802.11 WLAN, a timing synchronization function (TSF) keeps the timers for all stations in the same infrastructure network synchronized. The AP is the timing master and performs the TSF. Each station maintains a local TSF timer. Each client station's TSF timer keeps running even when stations are sleeping.
Power Save Mode for Virtual APs in a Device Supporting Multiple BSSIDs
With a single wireless device able to act as different APs for different sets of client stations, e.g., a single device having multiple BSSID's, problems arise if the individual beacon DTIM periods overlap between different infrastructure networks. As an example, consider the case of a single wireless device acting as the virtual AP of four BSSs. The wireless device thus has four corresponding BSSIDs, each with a DTIM period. Suppose the DTIM period was 2. The following describes what would be the default transmission order of the beacons:
Denote by B(n) a regular beacon frame for the device acting as AP with a BSSID denoted n, n=1, 2, 3, or 4, and denote by D(n) a beacon frame containing a DTIM for the wireless device acting as AP with the BSSID n, n=1, 2, 3, or 4. Then the sequence of transmitting beacons would be:
B(1) B(2) B(3) B(4) D(1) D(2) D(3) D(4)
This is undesirable because there is a cluster of DTIM beacons happening one after the other. Suppose, for example, that power save client stations are associated to all four “virtual” APs, i.e., with all four of the BSSIDs supported by the wireless device. After each DTIM beacon, all the multicast traffic that needs to be transmitted is so transmitted at the respective DTIM beacon boundary. If there is high priority traffic in another of the BSSIDs, such high priority traffic would be affected.
Thus there is a need in the art for a method for a wireless device to broadcast DTIM beacons for one BSSID in a manner such that traffic in other BSSIDs supported by the wireless device is unlikely to be affected in the case that the single wireless device acts as multiple APs, each with a different BSSID.